<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>父子组件的传值</title>
    <script src="../vue.js"></script>
   
</head>
<body>
    <!-- 
        1.单向数据流   子组件 你不能改变父组件传递的值 而是重新赋值变量
        2.父组件通过属性的方式向子组件传递值  
        单向数据流概念  ，子组件不能反过来修改父组件的内容，避免其他组件
        :属性前加： 双引号代表后面是js表达式   不加就是字符串
        3.子组件向父组件传值 ，通过 事件传值

    -->
    <div id="app">           
        <counter :count='0' @change="handleChange"></counter>
        <counter :count='1'></counter>
        <div>
            {{total}}
        </div>     
    </div>

    <script>
        //  子组件
        var counter = {
            props: ['count'],
            data: function() {
                return{
                    number: this.count
                }    
            },
            template:'<div @click="handleClick">{{number}}</div>',
            methods:{
                handleClick: function(){

                    //  不能修改父组件的内容
                   // this.count++;
                    this.number  = this.number + 2;
                    this.$emit('change',2)


                }
            }
        }
        var vm = new Vue({
           el: '#app',
           data:{
               total:5
           },
           components:{
               counter: counter
           },
           methods:{
                handleChange:function( step ){                        
                        this.total += step
                }
           }
        });
       

    </script>
</body>
</html>